"""
langchain中使用chroma
1.构建Document list
2.构建embeddings模型对象
3. 构建向量数据库 Chroma.from_documents(docs,emb,persist_directory="chromadb")  langchain_core.documents import Document
4.向量数据库相似度分数查询     vector_db.similarity_search_with_score("马云的英文名是什么",k=5)
"""

from langchain_core.documents import Document
from langchain_text_splitters import RecursiveCharacterTextSplitter
from model_utils import getEmd
from langchain_chroma import Chroma

text = """
基本信息
姓名：马云（英文名：Jack Ma）
出生日期：1964年9月10日
出生地：中国浙江省杭州市
毕业院校：杭州师范大学（原杭州师范学院），英语专业
花名：风清扬（源自金庸小说《笑傲江湖》中的神秘高手风清扬）
"""
docs = [Document(page_content=text)]

emb = getEmd()

splitter = RecursiveCharacterTextSplitter(separators=["\n\n", "\n", "。", "！", "？", "；", "，", " ", ""],
                                          chunk_size=200,
                                          chunk_overlap=40)

new_docs = splitter.split_documents(docs)

vec_db = Chroma.from_documents(new_docs,emb,persist_directory="./chromadb")
r = vec_db.similarity_search_with_score("马云的英文名是什么",k=3)
print(r)
